/*
* dataview export属性清单
* */
import XEUtils from 'xe-utils'

//属性清单
import dvProps from './props.js'

//方法清单
import dvFunIndex from './funIndex.js'

//vue各生命周期参数
import dvVueCycle from './vueCycle.js'
import customImage from "@/components/custom/form/customImage.vue"


const dataviewExportOption = {
  components: {  customImage },
  //数据对象
  data() {
    return {
      name: 'dataview',
      settings: require('@/settings.js'),
      tbMainSize: 'medium', // 表格尺寸
      primaryKey: '', // 主键值
      viewType: '', // 主键值
      importTableName: '', // 主键值
      baseTable: '', // 基础表
      listEntry: '',
      queryEntry: '',
      saveEntry: '',
      deleteEntry: '',
      rows0: [], // 获取以后的原始数据
      rows: [], // 当前显示的行数据（页面搜索过滤之后的）
      selectedRows: [], //checkBox选中的rows
      columns: null, // 所有列数据
      viewButtons: [], // 网格上方的操作按钮
      rowButtons: [], // 行内按钮
      userQuery: [], // 用户查询条件
      tableForm: null, //用户查询表单
      userOrder: [], // 用户排序条件
      queryWrapper: null, // 新版查询条件
      queryWrapperOnce: null, // 只执行一次的查询条件
      listLoading: false, // 控制加载中的信号灯
      isDataviewLoadStru: false, // 控制加载中的信号灯
      isAfterFetchData: false, // 控制加载中的信号灯
      showCheckbox: false, // 是否显示网格的选择框
      showRadiobox: false, // 是否显示网格的单选按钮
      editable: false, //是否允许行内表编辑
      showPagination: false, //是否显示分页
      pageSearch: '', // 页面检索条件存储
      pageSearchKey: 'pageSearch',
      fullSearchKey: 'fullSearch', //全文搜索key
      flowNodes: [], // 流程节点集合
      flowNodeValue: null, // 当前选中的流程节点值
      flowNodeKey: 'flowNodeValue',
      tablePage: {
        currentPage: 1, // 当前页
        pageSize: 15, // 每页记录条数
        totalResult: 0 //总记录数
      },
      tablePageSizes: [10, 15, 30, 50, 100],
      rules: {}, // 表单验证规则
      viewForm: null, // 明细编辑界面的组件
      viewFormStyle: 'dialog',
      viewFormWidth: '50%',
      viewFormTitle: '数据窗口',
      currentRow: {}, // 视图数据当前行，提供给视图编辑窗口备用，新增时为空
      viewFormData: {}, // 当前行数据的原始数据，新增时为空；编辑时，从数据库读取的数据
      viewFormVisible: false, // 编辑界面控制
      viewFormButtons: [], // 编辑界面按钮集合
      viewFormFlowButtons: [], // 流程按钮集合
      viewFormDictionaryDef: {},
      viewFormDictionaries: {}, // 编辑界面的字典
      viewFormEditDatas: {}, //行编辑数据源
      editQueries: {}, //行编辑数据查询条件
      editUserParam: {}, //行编辑数据查询条件，非wrapper
      viewFormEditColumns: {}, //行编辑列
      viewFormReadOnly: false, // 编辑界面是否只读
      viewFormStatus: '---', // 编辑界面的编辑状态
      viewFormEvents: {}, // 编辑界面注册的事件
      viewFormButtonVisible: true, //编辑界面是否显示按钮
      // 以下变量临时使用，不与界面元素绑定
      configReserveButtons: {},
      baseColumns: [],
      isBookedData: false,
      flow: {},
      deletePrompt: null,
      defaultSort: {},
      flowLogDialogVisible: false,

      flowCommentForm: {},
      clickedFlowButton: null,
      animat: false, //显示动画
      cloak: true,
      rowPK: '_XID',
      dataFilterType: null,
      dataFilterField: null,
      toolbars: {
        showImport: false,
        showExport: false,
        showPrint: false,
        showMaxZoom: false,
        showCustom: true
      },
      exportConfig: { //导出参数
        remote: true,
        exportMethod: this.exportMethod,
        download: false,
        mode: 'all',
        types: ['csv'],
        modes: ['all', 'current'],
        filename: ''
      },
      editConfig: {
        trigger: 'click',
        mode: this.propEditConfigMode && this.propEditConfigMode == 'cell' ? 'cell' : 'row',
        showIcon: false,
        activeMethod: this.activeRowMethod,
        icon: 'fa fa-pencil',
        showStatus: true
      },
      expandConfig: {
        visibleMethod: this.expandVisibleMethod,
      },
      //用户查询参数，将追加到fetchdata参数里面
      userParam: {},
      autoOpenFirst: false, //自动打开第一条，用于上下一条翻页时
      autoOpenLast: false, //自动打开最后一条，用于上下一条翻页时
      flagFullTxtSearch: false, //全文搜索
      flagFullTxtTitle: '搜索', //全文搜索提示信息
      fullSearchFields: [], //全文搜索匹配字段
      sortConfig: {
        remote: this.showPagination, //有分页后台排序，无分页前台排序
        trigger: 'cell'
      },
      orderField: null,
      orderType: null,
      noPrintSeq: false,
      pageSizeHeight: 0,
      searchGroupFields: [],
      searchGroupData: [],
      searchGroupForm: {},
      searchGroupActive: '',
      searchGroupDisabled: false,
      searchGroup: {},
      flagSuccessSave: false,  //是否保存成功，true:是
      viewName: null,
      importViewKey: null,
      viewKeyDb: null,
      formConfig: {}, //form属性,
      roleEveryone: 'everyone', //权限everyone
      formOpsg: '',
      tableFormState: {},
      dateFirstName: '',

      //数据视图默认查询参数配置
      defaultQueryConfig: null,
      baseApi: location.origin + '/api',
      //是否包含流程字段，判断使用
      haveFlowField: false,

      //字段map
      columnsMap: {},

      //按钮节点配置
      btnNodeMap: {},

      //行内按钮最大数量
      rowButtonMaxNum: 0,
      winH: window.innerHeight,

      //顶部合计字段列表 [name:'amout',title:'合计',value:11111111111]
      sumTopColumns: [],
      //顶部合计字段列表
      sumTopColumnsName: [],

      rowAlertFun: null,
      collapseStatus: true,
      //是否显示子网格复选框
      showChildCheckbox: false,
      isCollapse: false,
      isHide: false,

      //第一行编辑对象
      rowEditFirst: null,

      //当前所编辑的行，只会在行编辑第一次启动更新一次
      editRowOld: null,
      //当前所编辑的行
      editRow: null,

      //当前所编辑的单元格
      editCell: null,
      //当前所编辑的列
      editColumnName: null,
      //展示行
      showRow: {},
      // 是否行变化
      showTriggerMove: false,
      // 是否结构加载完
      isViewReady: false,
      // 是否忽略流程校验
      ignoreBeforeFlow: false,
      // 结构加载完是否主动加载数据
      isAutoReloadAfterFetchStru: false,
      isShowCustomDrawerForm: false,
      isRefreshCurrentRow: false,
      lastSaveData: {},
      timerAutoSave: null,
      icon: {
        // 列表右侧按钮
        column: {
          //删除
          delete: require('@/assets/icon/dataview/column/delete.png'),
          //编辑
          edit: require('@/assets/icon/dataview/column/edit.png'),
          // 查看
          view: require('@/assets/icon/dataview/column/view.png'),
        },
        // 列表顶部工具栏按钮
        toolbar: {
          //添加
          add: require('@/assets/icon/dataview/toolbar/add.png'),
          //确认
          confirm: require('@/assets/icon/dataview/toolbar/confirm.png'),
          //导入
          import: require('@/assets/icon/dataview/toolbar/import.png'),
          //导出
          export: require('@/assets/icon/dataview/toolbar/export.png'),

          //查询
          search: require('@/assets/icon/dataview/toolbar/search.png'),
          //刷新
          refresh: require('@/assets/icon/dataview/toolbar/refresh.png'),

          //重置
          reset: require('@/assets/icon/dataview/toolbar/reset.png'),
          //展开查询
          toggle: require('@/assets/icon/dataview/toolbar/toggle.png'),

          //关闭
          close: require('@/assets/icon/dataview/toolbar/close.png'),

          //删除
          delete: require('@/assets/icon/dataview/toolbar/delete.png'),
        },
        // 表单顶部按钮
        formTop: {
          //添加
          add: require('@/assets/icon/dataview/toolbar/add.png'),
          //取消
          cancel: require('@/assets/icon/dataview/toolbar/cancel.png'),
          //保存
          save: require('@/assets/icon/dataview/toolbar/save.png'),

          //关闭
          close: require('@/assets/icon/dataview/toolbar/close.png'),

          //日志
          log: require('@/assets/icon/dataview/toolbar/log.png'),

          //删除
          delete: require('@/assets/icon/dataview/toolbar/delete.png'),

          //打印
          print: require('@/assets/icon/dataview/toolbar/print.png'),
        },
      },
      tableToolbarConfig: {
        custom: true,
        slots: {
          buttons: 'toolbar_buttons'
        }
      },
      isQueryMore: false
    }
  },

  props: dvProps,
  created() {
    dvVueCycle.created(this)
  },

  //挂载后
  mounted() {
    dvVueCycle.mounted(this)
  },

  //计算对象
  computed: dvVueCycle.computed,

  //方法
  methods: dvFunIndex.inst(),

  //监听
  watch: dvVueCycle.watch,

  //销毁前
  beforeDestroy() {
    dvVueCycle.beforeDestroy(this)
  }
}

export default dataviewExportOption
